/*
 * Copyright (c) 2018.
 * http://www.ulabcare.com
 */

package com.mt.roll.core.utils;

import org.apache.commons.lang3.RandomStringUtils;
import org.apache.commons.lang3.RandomUtils;

/**
 * 随机码生成器，使用{@link RandomUtils}和{@link RandomStringUtils}生成随机码
 *
 * @author jiff
 * @date 2018-12-06
 * @since 1.0
 */
public class RandomCodeGenerator {
    /**
     * 数字随机码
     *
     * @param length 随机码长度
     * @return 随机码
     */
    public static int numericCode(int length) {
        return RandomUtils.nextInt((int) Math.pow(10, length - 1),
                (int) Math.pow(10, length));
    }

    /**
     * 字母随机码
     *
     * @param length 随机码长度
     * @return 随机码
     */
    public static String alphabeticCode(int length) {
        return RandomStringUtils.randomAlphabetic(length);
    }

    /**
     * 字母数字混合随机码
     *
     * @param length 随机码长度
     * @return 随机码
     */
    public static String alphanumericCode(int length) {
        return RandomStringUtils.randomAlphanumeric(length);
    }

    public static void main(String[] args) {
        for (int i = 0; i < 100; i++) {
            System.out.println(RandomStringUtils.randomNumeric(6));
            System.out.println(RandomStringUtils.random(6,
                    "abcdefghijkmnpqrstuvwxyz"));
            System.out.println(numericCode(8));
        }
    }
}
